// 接口
// TypeScript的核心原则之一是对值所具有的结构类型检查
// 它优势被称作 "鸭式辨型法" 或 "结构性子类型化"
// 在TypeScript里,
// 接口的作用就是为这些类型命名和为你的代码
// 或第三方代码定义契约
// 常规接口实现
function printLabel(labelleObj) {
    console.log(labelleObj.label, labelleObj.value);
}
var myObj = {
    size: "10",
    label: "size 10 object",
    value: "ldq"
};
printLabel(myObj);

function printLabel2(LabelledObj) {
    console.log(LabelledObj.label);
}
var myObj2 = { size: 100, label: "ldqNB" };
printLabel2(myObj2);

function printLabel3(LabelledObj) {
    console.log(LabelledObj.label, LabelledObj.name);
}
var myObj3 = { size: 10, label: "size 10 Objet", name: 'ldq' };
printLabel3(myObj3);

function createSquare(config) {
    // 定义默认值
    var newSquare = { color: "white", area: 100 };
    // color是否传进来
    if (config.color) {
        newSquare.color = config.color;
    }
    // width是否传进来
    if (config.width) {
        newSquare.area = config.width * config.width;
        clearInterval;
    }
    // 返回参数
    return newSquare;
}
var mySquare = createSquare({ color: "black", width: 100 });

function createSquare2(config) {
    // 定义默认值
    var newSquare = { color: "white", area: 100 };
    // color是否传进来
    if (config.color) {
        newSquare.color = config.color;
    }
    // width是否传进来
    if (config.width) {
        newSquare.area = config.width * config.width;
        clearInterval;
    }
    // 返回参数
    return newSquare;
}
var mySquare2 = createSquare2({ color: "black", width: 100 });